# def ischildof(obj, cls):
#     """
#     判断1个类或者实例, 是否与另一个类存在继承或者被继承关系
#     :param obj: 类名或者实例名
#     :param cls: 类名
#     :return: Bool
#     """
#     try:
#         for i in obj.__bases__:
#             # 遍历obj的每一个父类
#             if i is cls or isinstance(i, cls):
#                 # 若为对比类, 或者存在继承关系, 返回True
#                 return True
#         for i in obj.__bases__:
#             # 若上面没有返回, 在将父类递归执行此方法
#             if ischildof(i, cls):
#                 return True
#     except AttributeError:
#         # 若出现此报错, 说明为一个实例对象, 先判断该对象是否继承cls
#         if isinstance(obj, cls):
#             return True
#         # 将实例对象的类, 递归执行此方法
#         return ischildof(obj.__class__, cls)
#     # 递归执行完都没有, 说明2着没有继承关系
#     return False
